//home的仓库
import {reqCategoryList,reqBannerList,reqFloorList} from '@/api'
 
//getters:理解为计算属性，用于简化仓库数据，让组件获取仓库的数据更加方便
const getters = {};
 
//action:处理action，可以书写自己e的业务逻辑，也可以处理异步
const actions = {
        //通过API里面的接口函数调用，向服务器发请求，获取服务器的数据
      async  getCategoryList({commit}){
                let result = await reqCategoryList();
        //成功返回时，我们要修改仓库中的数据
                if(result.code==200){
                        commit("SETEGORYLIST",result.data);
                }
        },

        //获取mockjs模拟数据
       async getBannerList({commit}){
              let result = await reqBannerList();
        // 成功返回后提交给mutations处理数据
              if(result.code === 200){
                commit("SETBANNERLIST",result.data)
              }      
       },
       async getFloorList({commit}){
        let result = await reqFloorList();
  // 成功返回后提交给mutations处理数据
        if(result.code === 200){
          commit("SETFLOORLIST",result.data)
        }      
 }
 
};
 
//mutations:修改state的唯一手段
const mutations = {
        SETEGORYLIST(state,categoryList){
    //修改state中的categoryList---事先准备好空的categoryList
                state.categoryList = categoryList.slice(0,categoryList.length-1);
        },

        SETBANNERLIST(state,bannerList){ //bannerList = value
                // 修改数据
                state.bannerList = bannerList
        },
        SETFLOORLIST(state,floorList){   //floorList = value
                state.floorList = floorList
        }
};
 
//state:仓库存储数据的地方
const state ={
        //state中的数据默认初始值别乱写，服务器返回对象，服务器返回数组【根据接口返回值初始化的】
        categoryList:[],
        bannerList:[],
        floorList:[]
}
   
//对外暴露store类的实例
export default ({
//开启命名空间
        namespaced:true,
        state,mutations,actions,getters
 
});